package com.niit.users.service;

import java.util.Map;

import com.niit.common.pojo.ApiResponse;
import com.niit.common.util.PageInfoUtil;
import com.niit.users.pojo.TbBus;
import com.niit.users.pojo.TbBusTimeable;
import com.niit.users.pojo.TbMananger;
import com.niit.users.pojo.TbOrder;

/**
 * 用户模块的Service
 *
 * @author wangshMac
 */
public interface IBusDbService {
    /*----- 巴士概要模块管理开始 -----*/

    /**
     * 添加一条巴士概要
     *
     * @param pojo 巴士概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> saveOneBusService(TbBus pojo);

    /**
     * 更新一条巴士概要
     *
     * @param pojo 巴士概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> updateOneBusService(TbBus pojo);

    /**
     * 删除一条巴士概要
     *
     * @param condMap 删除的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> deleteOneBusService(Map<String, Object> condMap);

    /**
     * 查询多条巴士概要
     *
     * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
     * @param condMap      搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbBus
     */
    ApiResponse<TbBus> findCondListBusService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

    /**
     * 查询一条巴士概要
     *
     * @param condMap 搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbBus
     */
    ApiResponse<TbBus> findOneBusService(Map<String, Object> condMap);
    /*----- 巴士概要模块管理结束 -----*/
    
    /*----- 班次表概要模块管理开始 -----*/

    /**
     * 添加一条班次表概要
     *
     * @param pojo 班次表概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> saveOneBusTimeableService(TbBusTimeable pojo);

    /**
     * 更新一条班次表概要
     *
     * @param pojo 班次表概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> updateOneBusTimeableService(TbBusTimeable pojo);

    /**
     * 删除一条班次表概要
     *
     * @param condMap 删除的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> deleteOneBusTimeableService(Map<String, Object> condMap);

    /**
     * 查询多条班次表概要
     *
     * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
     * @param condMap      搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbBusTimeable
     */
    ApiResponse<TbBusTimeable> findCondListBusTimeableService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

    /**
     * 查询一条班次表概要
     *
     * @param condMap 搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbBusTimeable
     */
    ApiResponse<TbBusTimeable> findOneBusTimeableService(Map<String, Object> condMap);
    /*----- 班次表概要模块管理结束 -----*/
    
    /*----- 订单概要模块管理开始 -----*/

    /**
     * 添加一条订单概要
     *
     * @param pojo 订单概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> saveOneOrderService(TbOrder pojo);

    /**
     * 更新一条订单概要
     *
     * @param pojo 订单概要的对象
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> updateOneOrderService(TbOrder pojo);

    /**
     * 删除一条订单概要
     *
     * @param condMap 删除的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
     */
    ApiResponse<Object> deleteOneOrderService(Map<String, Object> condMap);

    /**
     * 查询多条订单概要
     *
     * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
     * @param condMap      搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbOrder
     */
    ApiResponse<TbOrder> findCondListOrderService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

    /**
     * 查询一条订单概要
     *
     * @param condMap 搜索的条件
     * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是TbOrder
     */
    ApiResponse<TbOrder> findOneOrderService(Map<String, Object> condMap);
    /*----- 订单概要模块管理结束 -----*/
}